//#include<iostream>
//#include<algorithm>
//using namespace std;
//
//char a[10];
//
//int main()
//{
//	cin >> a;
//	int op = 0;
//	if (a[0] == a[1] && a[0] == a[2]) op = 1;
//	if (a[1] == a[2] && a[2] == a[3]) op = 1;
//	if (op==1) printf("Yes");
//	else printf("No");
//	return 0;
//}

//#include<iostream>
//using namespace std;
//long long n;
//
//long long fuc(long long x)
//{
//	if (x == 1) return 1;
//	else if (x == 0) return 2;
//	else
//	{
//		long long l0 = 2, l1 = 1;
//		for (long long i=0; i <= x-2; i++)
//		{
//			long long t = l1;
//			l1 = l1 + l0;
//			l0 = t;
//		}
//		return l1;
//	}
//}
//
//int main()
//{
//	cin >> n;
//	long long ret = fuc(n);
//	cout << ret << endl;
//	return 0;
//}

//#include<iostream>
//using namespace std;
//
//char a[10];
//int ans;
//char sign[10];
//int op;
//
//void dfs(int u)
//{
//	if (u == 4)
//	{
//		if (ans == 7&&op==0)
//			printf("%c%c%c%c%c%c%c=7"
//				, a[0], sign[1], a[1], sign[2], a[2], sign[3], a[3]),op=1;
//		return;
//	}
//
//	sign[u] = '+';
//	ans += (a[u] - '0');
//	dfs(u + 1);
//	ans -= (a[u] - '0');
//
//	sign[u] = '-';
//	ans -= (a[u] - '0');
//	dfs(u + 1);
//	ans+= (a[u] - '0');
//}
//
//int main()
//{
//	cin >> a;
//	ans += (a[0]-'0');
//	dfs(1);
//	return 0;
//}

#include<iostream>
using namespace std;

const int N = 210;

int h, w;
int c[20][20];
int a[N][N];
bool st[N];
int ans;
int res;
int sign;

void dfs(int x,int ret)
{
	if (ret >= sign) return;
	if (x == 1)
	{
		res = min(ret, res);
		return;
	}
	for (int i = 0; i < 10; i++)
	{
		if (!st[i])
		{
			st[i] = true;
			dfs(i, ret + c[x][i]);
			st[i] = false;
		}
	}
}

int main()
{
	cin >> h >> w;
	for (int i = 0; i < 10; i++)
		for (int j = 0; j < 10; j++)
			cin >> c[i][j];

	for (int i = 0; i < h; i++)
		for (int j = 0; j < w; j++)
			cin >> a[i][j];

	for (int i = 0; i < h; i++)
		for (int j = 0; j < w; j++)
		{
			sign = c[a[i][j]][1];
			res = c[a[i][j]][1];
			if (a[i][j] != -1&&a[i][j]!=1)
			{
				st[a[i][j]] = true;
				dfs(a[i][j],0);
				st[a[i][j]] = false;
			}
			ans += res;
			res = 0;
		}
	cout << ans << endl;
	return 0;
}